Typically, the (N,K) block code used for streaming services is characterized in that the code rate (=K/N) increases as N increases under the assumption that the channel condition has a fixed Packet Loss Rate (PLR). In contrast, the code rate decreases as N decreases.
Although PRL is fixed, it is necessary to set N to a large value for random loss and a small value for burst loss. Here, if the N increases, this means that the Forward Error Correction (FEC) block interval increases and thus causes delay at the receiver.
This result from the nature of the packet-based network in which the corrupted packets in an FEC block made of N packets can be recovered after the receipt of at least K packets and thus the receiver has to wait for a time period about the FEC block length for FEC decoding.
Typically, it is advantageous to decrease the FEC Block size for the users under good channel condition in the unicast environment because the small FEC block decreases the delay and thus make it possible for the user to enjoy seamless streaming service. In order to provide the service seamlessly the user under the bad communication channel condition, however, it is necessary to use relatively low code rate. In order to secure the transmission efficiency even with the low code rate, it is necessary to increase the FEC block size. However, if the FEC block size increases, this causes relatively long delay of the service.
In the situation whether the streaming service is multicast to a plurality of user or broadcast, some users receive the service on the good channels good (e.g. PLR 1%) while some other users receive the service on the bad channels (e.g. PLR 10%). Also, some users may receive the service in the random packet loss environment and some others in the burst packet loss environment. There is therefore a need of a method for transmitting data to the individual users efficiently in such a situation.